The “Universal Serial Bus” or “USB” is a standardized interconnection mechanism for connecting various types of peripherals to a computer or computer-like device. USB is perhaps most commonly thought of as a mechanism for connecting gaming peripherals such as joysticks or game controllers. However, USB is suitable for connecting many different types of peripherals to a computer, such as optical scanners, digital speakers, digital cameras, keyboards, display devices, microphones, printers, mice, and many other types of devices. The USB standard encompasses mechanical, electrical, and data format aspects involved in transferring data between a host and a plurality of peripherals.
Generally, the USB standard contemplates at least three different types of peripheral devices, referred to as Human Input Devices (HID), bulk devices, and isochronous devices. HID devices include devices that accept human input, such as keyboards, mice, joysticks, game controllers, etc. Bulk devices include mass storage devices such as hard disks, optical memory devices, and other devices that involve transferring relatively large amounts of data. Isochronous devices include speakers, microphones, and other devices with respect to which data is transferred in a time-dependent manner.
Because of the popularity of USB peripherals, it is highly desirable to provide USB support in new computer products. However, it can be a challenging task to adequately test the USB support of a new computer product in light of the many different types and makes of available USB peripherals. The task is complicated by the very flexibility of the USB bi-directional communications protocol, which allows for a nearly unlimited number of configuration and communications scenarios.
The technology described below provides a flexible way to test peripheral communications capability of a computer-like device that has been designed to support a universal peripheral connection mechanism such as USB.